教程_关节模块驱动器固件升级
| 修订日期 | 修订版本 | 修订内容 | 修订人 | 
|---|---|---|---|
| 2022/10/27 | V1.0 | 新建文档,驱动器固件烧写 | 高振宇 | 
| 2022/10/29 | V1.1 | 添加:问题说明;版本确认;重新标定;遗留问题 修改文件名为教程_关节模块驱动器固件升级  | 
曾雨昊 | 
0.当前问题说明
当前版本并未提供真正的固件升级教程,而提供的是固件烧录教程。其区别在于:烧录固件会擦除MCU上的所有信息,导致关节模块必须拆卸后单独重新标定,再安装成机械臂后才能使用。请谨慎操作。
后续将更新固件升级教程,解决这一问题。
1.准备工作
1.1硬件准备
- 关节模块
 - J-LINK连接器
 - USB-CAN转接器(用于标定及验证)
 - 48V/5A开关电源(用于标定及验证)
 
1.2软件准备
- J-Flash V7.82 链接:https://qr.dingtalk.com/page/yunpan?route=previewDentry&spaceId=9206440325&fileId=72063747583&type=file
 - 目标hex文件:自备
 - USB-CAN驱动(用于标定及验证) 链接:https://qr.dingtalk.com/page/yunpan?route=previewDentry&spaceId=9206440325&fileId=72064036836&type=file
 - STM32_Driver_Test(用于标定及验证) 链接:https://qr.dingtalk.com/page/yunpan?route=previewDentry&spaceId=9206440325&fileId=72064066628&type=file
 
2.操作步骤
2.1 烧录hex文件
需要特别注意,用下述步骤会擦除MCU的所有信息,烧录后需要进一步标定驱动器。
下面以14模块为例,烧录版本号为2124的驱动器软件程序。
首先将J-Link与驱动器P1端子连接(J-Link另一头通过USB连PC),如图所示:

打开J-Flash V7.22b软件:
Creat New Project,选择Target Device为STM32F405RG,Target interface和Speed保持默认:

将目标hex文件拖动至右侧Drag & Drop Data file here内:

点击Target --> Connect:


状态显示Connected successfully后,点击Target -->Production Programming:

状态显示如下,即说明烧录成功。

如果有以下弹窗,可不用关注,这仅仅是提示J-Link为盗版,只需确认上图中Successfully即可。

2.2 固件库版本确认
如无需确认固件库版本,可跳过此步骤。确认固件库版本需要将模块与USB-CAN连接器连接,并利用上位机软件进行版本号检查。
首先按下图连接驱动器与CAN连接器和电源:

打开STM32_Driver_Test上位机软件,点击通讯 --> 连接驱动器:

若MCU已进行全片擦除,此处ID应写1;否则写当前关节索引号(例如关节6就写ID-6)

连接成功后,界面下方会显示版本号,可确认烧录的版本是否正确。

2.3 模块标定
若能正常升级固件库,则可跳过此节。若已对MCU进行全片擦除再烧录,则需要进一步进行模块的标定。如2.2节所述,用上位机软件与驱动器连接,在连接成功后,如未听到抱闸开启的声音,按如下步骤操作:
点击设置与标定 --> 勾选上电使能,再点击通讯 --> 保存数据到驱动器

断电,再重新上电。此时能在上电时听到抱闸开启,电机上电使能成功。
此时再点击波形发生器 --> 勾选使能波形发生器 --> 设置任意偏置(最好不要太大,30deg以内即可),关节末端运动。如此时未运动,应检查是否选中了上电使能。

以i5-关节6为例,其零位位于下图位置:

设置偏置量,用肉眼观察(目前仅有这种方式)关节是否运动到零位。
点击设置与标定 --> 当前位置设置为零位。此时需确认关节模块末端无负载,最好将模块输出端悬空,否则模块可能会乱动。点击设置与标定 --> 电位器标定,关节模块开始自标定,具体表现为先缓慢正转,再缓慢反转,在输出端最后一次快速回转运动后标定结束。

若ID被擦除,还需设定ID,这一过程较复杂,当前版本没有记录。
2.4 关节模块正常运行验证
关节模块正常运行验证的方法多种多样,此处从算法的角度提供一种方法。
首先将升级后的关节模块重新装回机械臂上并正确连线(为了拆装方便,此时可以不对关节之间做机械连接,仅完成电气连接即可)
运行仿真平台,给整机上电Power On,正常情况下log如下:

若机械臂成功上电,则说明模块可以正常运行。此时需要注意,若关节之间没有做机械连接,那么最好不要控制机械臂运动,避免造成其他风险。
若机械臂不能成功上电,可能存在如下报错:

以上图为例,将错误索引值0x0c转为二进制数00001100,可以看到Bit2和Bit3为1,说明此时关节2和关节3模块连接异常,需要进一步排查。
3. 遗留问题
- 尚未掌握升级固件的流程,每次烧录完之后都要拆卸模块、标定模块,步骤过于复杂
 - 标定模块时仅用肉眼观察零位是否到位,存在较大误差
 - ID被擦除后还需要用上位机设置ID,其过程涉及了上位机可能存在的BUG,较为繁琐,当前版本未记录。